情報デザイン演習1 「フィジカル・コンピューティング」(2021)
https://gyazo.com/3f46f310477b18c9d26d9ac1ec8da41a
授業の目的
情報と物質をまたぐガジェットのデザインを、Arduino互換基板(Grove Beginner Kit)によって経験します
時間
木曜4限 (15:30〜17:10)
場所
3111教室
教材
キット(Grove Beginner Kit for Arduino)
ドキュメント
/icons/---.icon
スケジュール (全6週)
1. Arduino 講習 1
授業内容
環境構築
Arduino IDE
CP2102 USB Driver
Lチカ
2. Arduino 講習 2
授業内容
Arduino に親しむ
Lesson 1〜10をやる
Lesson 4
code:lesson4x1.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 128);
delay(1000);
analogWrite(BuzzerPin, 0);
delay(1000);
}
code: lesson 4x2.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 256);
delay(200);
analogWrite(BuzzerPin, 192);
delay(200);
analogWrite(BuzzerPin, 128);
delay(200);
analogWrite(BuzzerPin, 64);
delay(200);
analogWrite(BuzzerPin, 0);
delay(500);
}
code:lesson_4x3.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
tone(BuzzerPin, 261);//ド
delay(500);
tone(BuzzerPin, 293);//レ
delay(500);
tone(BuzzerPin, 330);//ミ
delay(500);
}
Lesson 7
9行目のコメントアウトを外す
code:lesson7x.js
u8x8.setBusClock(100000);
フォントを変える
Lesson 8
温度湿度センサをD3につなぐ
16行目に追記する
code: lesson8x.js
u8x8.setBusClock(100000);
Lesson 10
基板のバージョンによって、加速度センサが認識されないことがある
回路にバグがあるので配線を修正する
3. Arduino 講習 3
授業内容
Arduino に親しむ
アクチュエータを接続する
ボリュームでサーボモータを動かす
code: servo.js
//サーボをArduinoに接続する
// オレンジ→D9、赤→5V、焦茶→GND
//AOにボリュームをつなぐ
Servo myservo;
int angle = 0;
void setup() {
// put your setup code here, to run once:
myservo.attach(9);
}
void loop() {
// put your main code here, to run repeatedly:
angle = analogRead(A0);
angle = map(angle, 0, 1023, 0, 180);
myservo.write(angle);
delay(10);
}
ステッパーモーター(28byj-48)を制御する
code: step.js
int interval = 4500;
void setup() {
pinMode(orange, OUTPUT);
pinMode(pink, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
for(int i=0; i<=200; i++){
ccw();
}
delay(1000);
for(int i=0; i<=200; i++){
cw();
}
delay(1000);
}
void ccw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
}
void cw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
}
ソレノイドを動かす
宿題
作りたいガジェットを企画し、スライドを作成する
実装に必要なセンサやアクチュエータをリストアップする
4. 企画発表会
授業内容
企画をプレゼンテーションをする (1名3分)
提出物
プレゼンテーションに使用したスライド(PDF)
実装に必要なセンサやアクチュエータのリクエスト
スイッチサイエンス、秋月電子、モノタロウ、Amazonあたりから選定してください
5. 試作相談会 (必要な人は12504にきて作業する)
授業内容
必要な追加部品などを受け渡す
試作方法を相談する
授業時間外も、火曜〜木曜なら対応できる
宿題
ガジェットを作り上げる
6. 試作試遊会
授業内容
作品の展示と試遊
人気投票
キットの返却(学期末までに)
提出物
試作レポート (試作物の写真は必須、映像は推奨)
評価基準
企画の良さ (最大40点)
試作の作り込み度 (最大60点)
出席+人気投票( +α)
/icons/---.icon
さらに学習を進めたい人へ
小林茂「Prototyping Lab 第2版 」オライリージャパン (2017)
Arduinoの利用法について網羅的に書かれています
ダスティン・ロバーツ「Making Things Move」オライリージャパン (2012)
動くガジェットの作り方について書かれています
過去の授業